package com.gxa.autoparts.portal.service;

import com.gxa.autoparts.core.common.GoodsVo;
import com.gxa.autoparts.core.exception.BusinessException;
import com.gxa.autoparts.core.pojo.Goods;
import com.gxa.autoparts.core.pojo.GoodsSku;

import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;

public interface GoodService {
    Map searchById(Long id) throws URISyntaxException;

    Goods searchGoodById(Long id);

    //从elasticSearch中拿出全部符合名字模糊的数据
    List<GoodsVo> searchByWord(String word);

    //综合搜索
    List<GoodsVo> searchCommon(String word,Long typeId);

    //销量降序搜索
    List<GoodsVo> searchBySaleCount(String word,Long typeId);

    //价格升降序 查询
    List<GoodsVo> searchByPriceSort(String word,Long typeId,Boolean sort);

    void updateGoods();

    /**
     * 获取banner的商品，即热度前三的商品
     * @return
     */
    List<Goods> getBannerGoods();

    /**
     * 获取首页的热门推荐，及热度4-6
     * @return
     */
    List<Goods> getHotGoods();

    /**
     * 首页秒杀数据
     * @return
     */
    List<Goods> getSecondKillGoods();

    /**
     * 获取该商品的sku
     * @param goodId
     * @return
     */
    List<GoodsSku> getSkuById(Long goodId);

    /**
     * 商品Id获取规格
     * @param goodId
     * @return
     */
    List<Map<String,Object>> getStandards(Long goodId) throws BusinessException;

    /**
     * 获取商品sku的json，用于匹配前端渲染
     * @param goodId
     * @return
     */
    List<Map<String,Object>> getSkuJsonList(Long goodId) throws BusinessException;



}
